Communications networks which include a plurality of interconnected components, or nodes are known. A communications network is a data processing system which includes a plurality of interconnected nodes, such as workstations, data storage devices, printers, servers, etc. The nodes are interconnected by a data link and communicate by transmitting and receiving messages, or packets to and from other nodes. Packets generally include a header and a payload, such as data.
Various techniques are employed for routing packets from a transmitting, or source node to a receiving, or destination node. Such techniques typically optimize one or more transmission criteria, such as minimizing congestion over a particular bus, or minimizing the distance that the packets travel to reach the destination node. Common to packet routing techniques is the need for each node to know the architecture, or configuration, of the network, since a source node must know the address, and preferably also the status, of a destination node in order to successfully transmit a packet to the destination node.
One technique for providing each node with the address and/or status of other nodes connected to the network is to download a "system map" from a central source, such as a system console, to each of the nodes at system initialization. In operation, when a node is added to the network, removed from the network, or experiences a failure, the central source must recognize this node status change and update the system map for subsequent downloading to each of the nodes in order to update the system map maintained by each of the nodes. However, the operator intervention necessary to update the central source with node status changes may be undesirable. Furthermore, the operator generated system map may be subject to errors.
Another technique for providing nodes with network configuration information is to use a central authority for "automatically" collecting network topology information from the nodes and then distributing the collected information to each of the nodes. However, use of such a central authority requires a separate, dedicated bus for communicating with each of the nodes since, without the network topology information, a node cannot "find" the central authority to provide the central authority with its information. Thus, this technique disadvantageously requires a maintenance bus, or other secondary bus system, to communicate the network configuration information to the central authority for collection and subsequent distribution.
One technique for propagating a packet to nodes connected to a network is to provide a "time to live" counter field in the packets. The "time to live" field is set to a predetermined value and decremented each time the packet is transmitted through a node. The packet is discarded after the counter has been decremented to zero. Use of this technique as a way of propagating network configuration information is constrained by the predetermined value to which the "time to live" field is initialized. That is, since it is desirable to set the "time to live" field to a value large enough to ensure propagation of the packet to the desired nodes, but not so large as to result in unnecessary packet propagation, the optimum value is a function of the number of network nodes and thus, requires prior knowledge of the network configuration.
Another technique for packet propagation is called the spanning tree algorithm. This technique restricts the logical topology of the network to require that each packet be routed toward a dedicated node, referred to as the root. More particularly, certain ports of nodes are disabled to prevent packet routing through loops of the physical network topology. Since the routing path toward the root may not be the optimum transmission path, for example in terms of packet congestion or distance travelled, the efficiency of using the spanning tree algorithm as a way to propagate network configuration information may suffer.